home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group98b.txt / 000104_icon-group-sender _Wed Jun 24 08:08:34 1998.msg < prev    next >
Internet Message Format  |  2000-09-20  |  9KB

  1. Return-Path: <icon-group-sender>
  2. Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
  3.     by baskerville.CS.Arizona.EDU (8.8.8/8.8.7) with SMTP id IAA01691
  4.     for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Wed, 24 Jun 1998 08:08:34 -0700 (MST)
  5. Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
  6.     id AA13548; Wed, 24 Jun 1998 08:08:23 -0700
  7. From: pygmy@eskimo.com (Frank Sergeant)
  8. To: icon-group@baskerville.CS.Arizona.EDU
  9. Subject: Re: using Icon for database application
  10. Date: Tue, 23 Jun 1998 20:03:06 -0500
  11. Reply-To: frank.sergeant@pobox.com
  12. Message-Id: <KBFk1Yv1uYeV084yn@eskimo.com>
  13. In-Reply-To: <199806222139.QAA25152@segfault.cs.utsa.edu>
  14. Lines: 179
  15. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  16. Status: RO
  17. Content-Length: 7986
  18.  
  19. Clint Jeffery, jeffery@cs.utsa.edu wrote:
  20.  
  21. > While I disagree with
  22. > Gordon Peterson's answers to your questions on many or most points,
  23.  
  24.      I'm glad to hear that.  Even if Gordon is correct in all his
  25. points, I'm going to have to work toward them slowly.  He does
  26. bring up (albeit politely) the possibility, worth considering,
  27. that I am out of my mind.
  28.  
  29. > I've done a lot more Icon
  30. > programming than Gordon, who frequently posts about Snobol in the Icon
  31. > group, bless his heart!
  32.  
  33.      All I know (?) about Snobol was that I'd heard over the
  34. years that it was "good for string processing".  Now I gather it
  35. is the father, or favorite uncle, of the Icon language.
  36.  
  37. > Icon isn't a special-purpose database language.  Its built-in types are
  38. > designed for flexible data manipulation in main memory.  If that's what
  39. > you want to do, you are all set;
  40.  
  41.      When you put it that way, I think it is clear that that _is_
  42. what I want to do.  (Also, it should be perfectly suitable for
  43. sequetial file processing, right?  That should work very well for
  44. producing reports.)  There remains the question as to whether
  45. the data will actually fit in RAM so that I _can_ do what I want
  46. to do.  I'm inclined to think it will fit, but I need to do some
  47. tests.
  48.  
  49. > if not, you should look for a database language, or think about
  50. > connecting Icon to a third-party database engine. There's more on
  51. > memory requirements in your question 9 below.
  52.  
  53.      I am now thinking about using the variable length,
  54. delimited format with all the data in RAM.  If that doesn't
  55. work out, I gather from a later comment you made that I
  56. could write extension routines in C as modifications to the
  57. Icon source.  I think I could do that to give Icon
  58. direct/random access to database files.  I am set up here
  59. with MSVC/C++, BC/C++, Watcom, and several other C compilers
  60. (which strikes me as very strange for someone who definitely
  61. is not a fan of C -- oh well).  Of course, I suspect there
  62. are details to study in order to coordinate properly with
  63. Icon, so I'd rather not rush into this.  However, I'm
  64. familiar with the C and Win32 file access routines.  Another
  65. possibility would seem to be doing the same thing to get
  66. access to Win32 socket routines and use them to communicate
  67. with a (possibly bare-bones) database server, written in
  68. anything, possibly C.  So, I am encouraged to think the
  69. straight forward, all Icon, data in RAM approach might work
  70. fine but that if it doesn't, I have not necessarily painted
  71. myself into a corner.
  72.  
  73. > >    2. I gather Windows Icon can make a normal looking
  74. > >       Windows application (rather than a Motif-ish
  75. > >       application) and that I probably could figure out
  76. > >       how to do this by reviewing the source code for Wi.
  77.  
  78. > Well, you shouldn't have to learn it by studying source code.
  79.  
  80.      You understood I meant to use the source for Wi as
  81. an example of how to put up the various menus, entry fields,
  82. and such, right?  That is, the menus and such in the Wi
  83. application look "normal" for Windows, whereas those in VIB
  84. do not.  Since Wi is written in Icon, I figured it must be
  85. possible to get that "normal" Windows look and that Wi
  86. would show how.
  87.  
  88. > Both the on-line reference and an appendix in "Graphics
  89. > Programming in Icon" discuss these functions, which are quite
  90. > simple.
  91.  
  92.      I have the book on order.  I'm very much looking
  93. forward to it.  At the moment, Python and Icon are largely
  94. tied in my mind.  I would be delighted to hear more comments
  95. that might help me understand their relative tradeoffs.  One
  96. thing that worries me about Python is that its preferred GUI
  97. seems to be Tk.  I used Tk a little (with Tcl) several years
  98. ago, prior to it getting a "native look and feel" and wasn't
  99. crazy about it.  Also, a demo of a extension to Tk, PMW
  100. (Python Mega Widgets), seemed way too slow.  So, that Icon
  101. might have an easy to use, fast GUI makes me think I will
  102. like it better than Python with Tk.
  103.  
  104. > Icon's graphics are plenty fast enough for 486 clients, but
  105. > Icon would not be suitable for the server software unless
  106. > either (a) enough main memory was available to fit all the
  107. > indices and preferably the data as well, or
  108.  
  109.      How does keeping just the indices in RAM solve the
  110. problem if Icon does not have direct access to the data
  111. file?
  112.  
  113. > One wart I know of at present: if you use tons of different
  114. > record types you get penalized (this is true, for example,
  115.  
  116.      I guess I would have a record type for each database
  117. plus other record types for anything I could treat as an
  118. object.  On the bright side, you might well have this fixed
  119. before I'm ready to put the app in production.
  120.  
  121. > I think the Icon program would be larger, unless your
  122. > rewrite substantially reduces the number of lines of code to
  123. > exploit Icon's built-in features.  If you just translated
  124. > xBase line-by-line into Icon the result will be huge.
  125. > Clipper is (was?) a fine commercial-quality product.
  126.  
  127.      I think I could knock perhaps a third off the source
  128. code side by rewriting it properly in Clipper.  I would hope
  129. to take advantage of Icon's features to make it even
  130. smaller.  All this is guess work until I try it out.
  131.  
  132. > Ah, its time for some vaporware.  Sockets are only
  133. > available on Unix at the present time.
  134.  < calling Win32 routines from Icon >
  135. > I keep getting nibbles, but so far no one has volunteered to implement this
  136. > kind of access.  You can get the Windows Icon source and make such
  137. > extensions yourself, and if you build something really useful I'd certainly
  138. > like to incorporate it into the main public domain Windows Icon
  139. > distribution.
  140.  
  141.      Ok.  I find this very encouraging.  As slowly as I am
  142. moving, you may well have it all ready before I need it.
  143. Or, if I do need it sooner, I might be able to write
  144. specific calls to the socket routines.  I'll be glad to send
  145. you anything I do in this area, but I'm a long way from it
  146. at the moment.
  147.  
  148.      Another idea that occurred to me, if only as a proof of
  149. concept, if sockets aren't available, would be to have the
  150. client and server communicate via files on a RAM disk on the
  151. server.  Another possibility might be to have the server
  152. generate HTML and let the clients be any old web browsers.
  153. (I have some user interface concerns here, though.)
  154.  
  155. > The main Idol web site is now www.cs.utsa.edu/research/idol/ and I am
  156. > in the process of packaging a release of Windows Idol.  You should consider
  157. > using Idol if you want to write object-oriented applications or have a large
  158. > complex application with many user-defined types.
  159.  
  160.      Thanks.  I'll take a look when it is ready.
  161.  
  162. > Icon is generally tuned for speed, rather than to minimize space
  163. > requirements.  I've heard reports of Unix Icon programs in the million line
  164. > range, but haven't seen a Windows Icon program in the 100K range yet.
  165.  
  166.      If things go well, my rewrite would be under 100K, so
  167. that sounds ok.
  168.  
  169. > My impression is that Windows manages virtual memory much
  170. > worse than UNIX or Linux.
  171.  
  172.      I don't doubt it.  I'm rather annoyed with Windows at
  173. the moment, so I'm ready to believe any bad thing about it.
  174. Although, W95 almost never crashes on me any more now that
  175. I fixed my hardware.  Prior to that, it would crash perhaps
  176. one or more times a day.  But, at that same time, with the
  177. defective hardware, I would usually run Linux for more hours
  178. per day on the same machine and Linux would essentially
  179. _never_ crash on me.  So, my conclusion is that with
  180. equivalent hardware Linux is the better operating system
  181. and goes out of its way to take care of you and your data
  182. while Windows does not.
  183.  
  184. > On old 486's with 8MB of memory you may run into terrible
  185. > problems unless you split the application up into a thin
  186. > "client" program that can access a server with more muscle.
  187.  
  188.      I think I can do that.  It would be easier to say a
  189. customer must have _one_ fast machine as a server, than to
  190. say _every_ machine in the office must be a fast machine.
  191.  
  192.      Thanks for your other comments as well.
  193.  
  194.  
  195.   -- Frank
  196.   frank.sergeant@pobox.com
  197.  
  198.